package main
import (
	"fmt"
	"math/rand"
	"time"
)
//数组的使用，数组在Go中是一种值类型！
//数组优点：可维护性增加！易于扩展！
//数组的地址就是&arr,其实就是数组的首地址就是第一个元素的地址！
//下一个元素的地址=上一个地址加上该元素的字节数   int->8字节  int32 -> 4字节
func main(){
	//数组的初始化方式
	//1...
	var array1 [3]int = [3]int{1,2,3}
	//2...
	var array2 = [3]int{1,2,3}
	//3...
	var array3 = [...]int{1,2,3}
	//4...
	var array4 = [...]int{1:1, 0:2, 2:3}
	//array1[3] = 1
	fmt.Println("array1: ",array1)
	fmt.Println("array2: ",array2)
	fmt.Println("array3: ",array3)
	fmt.Println("array4: ",array4)

	var array5 = [...]string{"hello","world","fmx"}
	for index,value := range array5{
		fmt.Printf("array5[%d]---->%v\n",index,value)
	}

	//随机获取5个数存入到数组里  rand.Intn(int)
	//随机数需要使用给定的Seed（种子）来初始化随机数生成器 //如果不用获取到的随机数始终是同一个
	var randarray [5]int
	//通过Seed来让生成器生成不同随机数
	rand.Seed(time.Now().UnixNano())
	for i := 0; i < len(randarray); i++{
		randarray[i] = rand.Intn(100)
	}
	fmt.Println("The rand's array is : ",randarray)
}
//开辟了一段内存空间，数组的地址既是首元素的首地址！